Harnessing large data sources to define a mobile user&#39;s real-time context then determining and delivering highly relevant mobile messages based on that context

ABSTRACT

Embodiments described herein relate generally to receiving information from a mobile device and selecting content to be provided to that mobile device based on the received information. An audience may be identified that is to include the mobile device and/or a user thereof based on the information received from the mobile device. The identified audience may be associated with a campaign. Accordingly, content also associated with the campaign may be identified. This content may be sent to a mobile device associated with the user. A relevancy value may be calculated to indicate whether the content should be provided to the mobile device. If the relevancy value does not meet or exceed a predetermined threshold, then the content may not be provided to the mobile device. Other embodiments may be described and/or claimed.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application claims priority to U.S. Provisional PatentApplication No. 61/855,481, filed on May 16, 2013, entitled “HarnessingLarge Data Sources to Define a Mobile User's Real-Time Context ThenDetermining and Delivering Highly Relevant Mobile Messages Based on thatContext,” the entire disclosure of which is hereby incorporated byreference.

FIELD OF INVENTION

Embodiments of the present invention relate generally to the technicalfield of data processing, and more particularly, to computer systemsadapted to operate to wirelessly communicate data over networks.

BACKGROUND

The background description provided herein is for the purpose ofgenerally presenting the context of the disclosure. Work of thepresently named inventors, to the extent it is described in thisbackground section, as well as aspects of the description that may nototherwise qualify as prior art at the time of filing, are neitherexpressly nor impliedly admitted as prior art against the presentdisclosure. Unless otherwise indicated herein, the approaches describedin this section are not prior art to the claims in the presentdisclosure and are not admitted to be prior art by their inclusion inthis section.

With steadily increasing competition for the attention of consumers,marketers seek new and innovative ways to garner the mindshare of theconsumer. Marketers may face environmental, technical, and macro-trendchallenges in getting their message in front of their consumer targetsat the right time. Whether the marketer is a retailer vying for ashopper's attention, a bank vying for an investor's attention, or atravel supplier vying for a traveler's attention, all marketers face thesame challenge: getting timely, relevant, and noticeable messages infront of chosen targets. With the accelerating adoption of smartphones,the media field in which these marketers must vie has becomeincreasingly noisy.

In parallel with the rise of mobile devices such as smartphones,database and analytics technologies have appreciably advanced. Wherelarge databases once required expensive hardware and proprietarysoftware solutions, new and lighter-weight solutions have fundamentallychanged the capabilities and costs of running powerful databases andanalytics solutions. “Big data” solutions may now be employed quicklyand cost effectively.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments of the invention are illustrated by way of example andnot by way of limitation in the figures of the accompanying drawings inwhich like references indicate similar elements. It should be noted thatreferences to “an” or “one” embodiment of the invention in thisdisclosure are not necessarily to the same embodiment, and they may meanat least one.

FIG. 1 is a block diagram illustrating a system for selecting contentthat is relevant to a mobile device and delivering that content to themobile device, in accordance with various embodiments.

FIG. 2 is a block diagram illustrating a computing system that includesa content selection engine to select content that is to be delivered toa mobile device, in accordance with various embodiments.

FIG. 3 is a block diagram illustrating a computing system that iscommunicatively coupled with a plurality of databases to updateinformation used for content selection, in accordance with variousembodiments.

FIG. 4 is a block diagram illustrating a mobile device that is tocommunicate with a marketer computing system and a content selection anddelivery computing system, in accordance with various embodiments.

FIG. 5 is a flow diagram illustrating operations associated with contentselection and delivery by a computing system, in accordance with variousembodiments.

FIG. 6 is a sequence diagram illustrating operations associated withdefinition, selection, and delivery of content to a mobile device, inaccordance with various embodiments.

FIG. 7 is a flow diagram illustrating a method for identifying contentto be provided to a mobile device based on information provided by themobile device, in accordance with various embodiments.

FIG. 8 is a flow diagram illustrating a method for identifying contentthat is relevant to a mobile device based on information provided by themobile device, in accordance with various embodiments.

FIG. 9 is a flow diagram illustrating a method for computing analyticalinformation associated with the selection and delivery of content to amobile device, in accordance with various embodiments.

FIG. 10 is a flow diagram illustrating a method for computing a valuethat is to indicate if content is relevant to a mobile device, inaccordance with various embodiments.

FIG. 11 is a flow diagram illustrating a method for identifying one ormore potential audiences based on data associated with a mobile deviceand/or user, in accordance with various embodiments.

FIG. 12 is a flow diagram illustrating a method for notifying anothermarketer that an audience associated with a first marketer is availableto receive content, in accordance with various embodiments.

FIG. 13 is a flow diagram illustrating a method for providing additionalcontent to a mobile device associated with a user based on userinteraction with first content provided to a mobile device associatedwith that user, in accordance with various embodiments.

FIG. 14 is a flow diagram illustrating a method for providinginstruction content to a mobile device associated with a user based onthe size of the instruction content, in accordance with variousembodiments.

DETAILED DESCRIPTION

In the following detailed description, reference is made to theaccompanying drawings, which form a part hereof wherein like numeralsdesignate like parts throughout, and in which is shown by way ofillustration embodiments that may be practiced. It is to be understoodthat other embodiments may be utilized and structural or logical changesmay be made without departing from the scope of the present disclosure.Therefore, the following detailed description is not to be taken in alimiting sense, and the scope of embodiments is defined by the appendedclaims and their equivalents.

Various operations may be described as multiple discrete actions oroperations in turn, in a manner that is most helpful in understandingthe claimed subject matter. However, the order of description should notbe construed as to imply that these operations are necessarily orderdependent. In particular, these operations may not be performed in theorder of presentation. Operations described may be performed in adifferent order than the described embodiment. Various additionaloperations may be performed and/or described operations may be omittedin additional embodiments.

For the purposes of the present disclosure, the phrases “A or B” and “Aand/or B” means (A), (B), or (A and B). For the purposes of the presentdisclosure, the phrase “A, B, and/or C” means (A), (B), (C), (A and B),(A and C), (B and C), or (A, B, and C).

The description may use the phrases “in an embodiment,” or “inembodiments,” which may each refer to one or more of the same ordifferent embodiments. Furthermore, the terms “comprising,” “including,”“having,” and the like, as used with respect to embodiments of thepresent disclosure, are synonymous.

As used herein, the terms “module” and/or “logic” may refer to, be partof, or include an Application Specific Integrated Circuit (“ASIC”), anelectronic circuit, a processor (shared, dedicated, or group), and/ormemory (shared, dedicated, or group) that execute one or more softwareor firmware programs, a combinational logic circuit, and/or othersuitable hardware components that provide the described functionality.

Beginning first with FIG. 1, a block diagram shows a system 100 forselecting content to be delivered to one of the mobile devices 110 a-b,in accordance with various embodiments. The system 100 includes, but isnot limited to, a plurality of mobile devices 110 a-b, a contentselection and delivery computing system 150, and a marketer computingdevice 160. The mobile devices 110 a-b may be any type of portablecomputing device adapted to transmit and receive data, such as a tabletcomputer, a handheld device, a portable web-enabled appliance, a gamingdevice, a mobile phone, a smartphone, an eBook reader, a personal dataassistant, or any portable computing device operable to communicate overa network 130. According to embodiments, the mobile devices 110 a-b mayrun one or more applications adapted to transmit data to and receivedata from the content selection and delivery computing system 150. Toidentify the mobile devices 110 a-b in the system 100, each may haveassociated therewith a unique identifier. Such identifiers may anonymizethe mobile devices 110 a-b in the system 100 so that data may becommunicated to the mobile devices 110 a-b without exposing personalinformation associated with the users. In various embodiments, themobile devices 110 a-b may be associated with a single user. Forexample, a user may log in to an application on a first mobile device110 a and, later, the user may log in to another application on thesecond mobile device 110 b, which may have access to stateful data fromthe user's interaction with the first mobile device 110 a.

The mobile devices 110 a-b may be adapted for intersystem communicationacross a network 130. The network 130 may be a public or privatenetwork, and/or a combination of different types of networks. In manyembodiments, the network 130 may be a wireless network. The network 130may be implemented as a local area network (“LAN”), a wide area network(“WAN”) such as the Internet, a wireless cellular network (e.g., acellular data network), or a combination thereof. In variousembodiments, the network 130 may include one or more components that areinstrumental in the implementation of the network 130, such as one ormore access points, one or more routers, and other networking devices.

The network 130 may communicatively couple the mobile devices 110 a-bwith a content selection and delivery computing system 150. Thecomputing system 150 may include any arrangement of hardware andsoftware embodied in a computing system configured to receiveinformation from one of the mobile device 110 a-b, select content basedon the information, and send the selected content to that one of themobile devices 110 a-b over the network 130. In various embodiments, thecontent selection and delivery computing system 150 may be configured todetermine the relevance of content for the mobile devices 110 a-b. Thecontent selection and delivery computing system 150 may determine, forexample, that content should not be sent to the mobile devices 110 a-bif the content selection and delivery computing system 150 determinesthe content is not sufficiently relevant. In further embodiments, thecontent selection and delivery computing system 150 may compute discretevalues associated with the relevance of discrete content so thatdiscrete content may be sent to the mobile devices 110 a-b with anindication of what is to be displayed first.

The content selection and delivery computing system 150 may be, forexample, a server computing system that includes a server operatingsystem, one or more software applications, and/or hardware (e.g.,dedicated hardware) adapted to communicate data with the mobile devices110 a-b over the network 130. In some embodiments, the content selectionand delivery computing system 150 may include a plurality of physicaldevices (e.g., hardware distributed in multiple physical machines).Thus, the content selection and delivery computing system 150 mayinclude two or more coupled computer devices that cooperatively operate.

In embodiments, the components of the content selection and deliverycomputing system 150 may allow the content selection and deliverycomputing system 150 to communicate data with the marketer computingdevice 160. The marketer computing device 160 may be connected with thecontent selection and delivery computing system 150 through aninterconnect 170, which may be a network (e.g., a network similar to thenetwork 130). In embodiments, the content selection and deliverycomputing system 150 may provide an interface to the marketer computingdevice 160 that may be, for example, software as a service (“SaaS”) thatcentrally hosts data and software on the cloud for the marketercomputing device 160.

The marketer computing device 160 may be any type of computing systemadapted to communicate data, such as a personal computer (e.g., adesktop computer, laptop computer, server, or tablet computer), aworkstation, a handheld device, a web-enabled appliance, a gamingdevice, a mobile phone (e.g., a Smartphone), an eBook reader, or anyother similar computing device. According to embodiments, the marketercomputing device 160 may be operated by, for example, a marketer (e.g.,an airline or travel provider, a hotel provider, a retail provider, aloyalty program provider) that wishes to provide content to an audiencethrough the content selection and delivery computing system 150. Themarketer computing device 160 may be adapted to communicate data to thecontent selection and delivery computing system 150. The datacommunicated by the marketer computing device 160 to the contentselection and delivery computing system 150 may, for example, define anaudience (e.g., a group that includes one or more of the mobile devices110 a-b) that is to receive content, define content to be transmitted tothe mobile devices 110 a-b, define an approach to providing content tothe mobile devices 110 a-b, and/or define various other aspectsassociated with the content selection and delivery computing system 150.

Turning now to FIG. 2, a block diagram illustrates a content selectionand delivery computing system 200 that includes a content selectionengine 213 to select content that is to be delivered to a mobile device,in accordance with various embodiments. The content selection anddelivery computing system 200 may be or may be included in the contentselection and delivery computing system 150 of FIG. 1.

The content selection and delivery computing system 200 includes, but isnot limited to, main memory 210, storage 221, processor 218, and/or anetwork interface 220. These components may be communicatively coupledthrough a bus 219. The bus 219 may be any subsystem adapted to transferdata within the content selection and delivery computing system 200. Thebus 219 may include a plurality of computer buses as well as additionalcircuitry adapted to transfer data within the content selection anddelivery computing system 200.

To communicate data with another computing device (not shown), thecontent selection and delivery computing system 200 includes a networkinterface 220. The network interface 220 may accept data across anetwork (not shown) from an external computing device to be processed bythe content selection and delivery computing system 200.Correspondingly, the network interface 220 may transmit data across anetwork. The network interface 220 may be implemented in hardware,software, or a combination of the two and may include, for example,components such as a network card, network access controller, and/orother network interface controller(s). The network interface 220 iscommunicatively coupled with the processor 218, which executesinstructions for the content selection and delivery computing system200. In one embodiment, some or all of the instructions for the networkinterface 220 are executed by the processor 218.

The processor 218 may be any processor suitable to execute instructions,such as instructions from the main memory 210. Accordingly, theprocessor 218 may be, for example, a central processing unit (“CPU”), amicroprocessor, or another similar processor. In some embodiments, theprocessor 218 includes a plurality of processors, such as a dedicatedprocessor (e.g., a graphics processing unit), a network processor, orany processor suitable to execute operations of the content selectionand delivery computing system 200.

Coupled with the processor 218 is the main memory 210. The main memory210 may offer both short-term and long-term storage and may in fact bedivided into several units (including a unit located at the processor218). The main memory 210 may be volatile, such as static random accessmemory (“SRAM”) and/or dynamic random access memory (“DRAM”), and mayprovide storage (at least temporarily) of computer-readableinstructions, data structures, software applications, and other data forthe content selection and delivery computing system 200. Such data maybe loaded from the storage 221. The main memory 210 may also includecache memory, such as a cache located at the processor 218. The mainmemory 210 may include, but is not limited to, instructions related tothe components 211-216 that are to be executed by the processor 218: aninformation definition module 211, an information intake module 212, acontent selection engine 213, a content delivery module 214, ananalytics module 215, and an operating system 216.

In various embodiments, the operating system 216 is configured toinitiate the execution of the instructions, such as instructionsprovided by a module 211, 212, 214, 215 and/or the content selectionengine 213. In particular, the operating system 216 may be adapted toserve as a platform for running the components 211-215 illustrated inthe main memory 210. The operating system 216 may be adapted to performother operations across the components of the content selection anddelivery computing system 200, including threading, resource management,data storage control, and other similar functionalities.

The operating system 216 may cause the processor 218 to executeinstructions associated with a module 211, 212, 214, 215 and/or thecontent selection engine 213. Although illustrated as residing in mainmemory 210, one or more of the modules 211, 212, 214, 215 and/or thecontent selection engine 213 may be implemented in hardware, firmware,and/or a combination of hardware, software, and firmware as, forexample, one or more integrated circuits (e.g., one or more ASICs).According to embodiments, one or more of the modules 211-215 may beprovided as SaaS to another computing system. In embodiments, theinformation definition module 211 may be configured to provide aninterface to the other computing system over a network (e.g., throughthe network interface 220). Through the provided interface, theinformation definition module 211 may receive data. According toembodiments, this interface may be provided to a marketer (e.g., anairline or travel provider, a hotel provider, a retail provider, aloyalty program provider) that is to define content to be provided tousers of mobile devices.

The information definition module 211 may process received data todefine how another component 212-215 may process other data. In variousembodiments, the information definition module 211 may define anaudience, which may be a group of devices and/or users associated withthose devices that are to receive content. The audience may be definedby one or more similar characteristics—i.e., one or more predicates uponwhich addition to the group is conditioned. For example, the audiencemay be defined by one predicate: all individuals on a specific flight.In another example, the audience may be very granular: travelers on aspecific flight on a specific date who are currently scheduled ineconomy class who have a history of purchasing upgrades, and thespecific flight includes available seat upgrades.

In various embodiments, the information definition module 211 may definepredicates that are variable and/or are to be resolved based onreal-time information. For example, the information definition module211 may process data that is to define the content to be delivered to anaudience based on a relative time and/or location of an event—e.g., twohours before the departure of a flight that has been delayed for fourhours, within one mile of a specific airport. According to someembodiments, the information definition module 211 may process data thatcreates complex statements upon which an audience is predicated basedon, for example, logical operators (e.g., and, not, or, xor, xand,etc.). The information definition module 211 may present an interfacehaving one or more input fields associated with predicates (e.g., asselectable dropdown(s) and/or editable textbox(s)) and/or logicaloperators and may detect input data from a marketer to the input fieldsthat defines one or more predicates. In the aggregate, the definedpredicates may comprise an audience.

In embodiments, the information definition module 211 may define acampaign, which may define content that is to be delivered to anaudience and/or how that content is to be delivered. The content may be,for example, one or more offers, one or more alerts or notifications, oressentially any other information that may be germane to an audience.For example, the information definition module 211 may receive andprocess data that defines an offer for an airport lounge as the content,and that content is to be offered to an audience of travelers who arelocated in an airport and scheduled to depart on one or more flightsthat are delayed at least one hour. In various embodiments, theinformation definition module 211 may present an interface having one ormore input fields associated with content (e.g., as selectabledropdown(s), editable textbox(s), and/or predefined templates) and maydetect input data from a marketer to the input field(s) that definescontent, associated with a campaign, to be provided to an audience.Additionally, the information definition module 211 may receive andprocess data that defines whether the provision of content to one ormore audiences is to be initiated by the computing system 200 (e.g.,“push”) or as a response to a request (e.g., “pull”).

To determine one or more devices and/or users to be associated with oneor more audiences, the computing system 200 may receive information fromthose one or more devices. Accordingly, the computing system 200 mayinclude an information intake module 212. The information intake module212 may process information, received at the network interface 220, froma mobile device (not shown). In various embodiments, this informationmay include, for example, information about the mobile device (e.g., amake and/or model, an operating system version, a screen size, a timezone, a locale, an identification of an application that caused theinformation to be sent, and/or an identification of the mobile device),information about a location of the mobile device (e.g., a coordinate, adirection, an altitude, and/or a speed), information about anapplication at the mobile device (e.g., context data associated with theuser and/or the device, information associated with an event, such as aflight having a number, departure time and location, arrival time andlocation, etc.). In an embodiment, this information may include anitinerary associated with the user. The itinerary may, for example,indicate an event (e.g., a flight, a meeting, a hotel stay), one or morelocations associated with the event (e.g., an origin and/or destinationof a flight), one or more times associated with the event (e.g., ascheduled departure and/or arrival time of the flight), and otherrelated information. In another example, the itinerary may indicate ahotel, a scheduled check-in and/or check-out time, and other suchinformation.

The information intake module 212 may timestamp information processedfrom a mobile device. In various embodiments, the information intakemodule 212 may periodically process information from the mobile devicethat updates existing information processed by the information intakemodule 212 for that same mobile device and/or user. For example, theinformation intake module 212 may process an updated location for amobile device. In such an example, existing information processed by theinformation intake module 212 may remain applicable for that mobiledevice—e.g., an itinerary for the user of the mobile device would remaingermane, but the location of that mobile device may be updated.According to an embodiment, a user may be associated with a plurality ofdevices, and each device of the plurality may be adapted to provideinformation about the user. In such an embodiment, the informationintake module 212 may be adapted to receive information associated witha user from a plurality of devices associated with that user and updateexisting information (e.g., stored in main memory 210 and/or storage221) associated with that user, even where such information is receivedfrom a disparate sources (e.g., a smartphone and a tablet computer). Inembodiments, the information intake module 212 may be configured tonormalize information, e.g., to minimize redundancy and/or adapt data toa format that may be processed by the content selection engine 213.

According to embodiments, the information associated with a mobiledevice and/or a user thereof may be supplemented (e.g., enhanced) by theinformation intake module 212, e.g., for evaluation by the contentselection engine 213. This supplementation may support grouping themobile device and the associated user into an audience. In embodiments,the information intake module 212 may supplement the information withmetadata to attempt to increase the applicability of the information toone or more predicates. The information intake module 212 may, forexample, convert an age of a user to an age range, compute a number ofminutes between the current time and the start time of an eventindicated on an itinerary (e.g., sixty minutes before the event), expanda specific location to a more general location (e.g., O'Hare Airport maybe expanded to the city Chicago, Ill., and/or the geographic region“Midwest”), or other similar adaptations. According to some embodiments,the metadata may be additional data added, e.g., data received fromanother service and/or a third-party database. In such embodiments, theinformation intake module 212 may, for example, associate metadata withthe information associated with the mobile device and user, such asweather at a location (e.g., a destination or origin location indicatedby an itinerary), an actual event time (e.g., an actual departure and/orarrival time for a delayed flight indicated by an itinerary), a durationof an event (e.g., a duration of a flight indicated by an itinerary), anaddress of a location, a distance to an event, a type of location (e.g.,airport or hotel), a status of an event (e.g., a cancelled or delayedstatus of a flight indicated by an itinerary), or essentially any otherdata that is related to the information received from the mobile device.

In various embodiments, information (and associated metadata) processedby one or both of the information definition module 211 and/or theinformation intake module 212 may be stored in the storage 221. Forexample, the information intake module 212 may cause data (e.g.,information and/or metadata) associated with a mobile device and/or auser to be stored in the storage 221 in one or more data structures(e.g., tuples, fields in a database table, etc.) that are associatedwith an identification of the mobile device and/or the user of themobile device. The storage 221 may include both volatile andnon-volatile memory, such as read-only memory (“ROM”), flash memory, andthe like. Furthermore, the storage 221 may include communicativelycoupled storage devices, such as one or more databases, one or moreexternal hard disk drives, and the like. The storage 221 mayadditionally provide storage of computer-readable instructions, datastructures, application modules, and other data for the computing device200. Accordingly, while the storage 221 is illustrated as a singlecomponent, the storage 221 may comprise a plurality of separatecomponents (e.g., RAM, flash, removable storage, etc.).

The storage 221 and/or the information definition and intake modules211, 212 may be coupled with the content selection engine 213. Thecontent selection engine 213 may be configured to identify a group(e.g., audience) that is to include a mobile device and/or theassociated user based on data processed by the information intake module212. In embodiments, the content selection engine 213 may be configuredto identify a plurality of audiences based on data processed by theinformation intake module 212—e.g., a mobile device and/or an associateduser may be included in a plurality of audiences simultaneously.Additionally, the content selection engine 213 may be configured toidentify content that is to be provided to one or more mobile devicesincluded in the audience. The identification of the content may includeone or more operations associated with identifying a campaign that isassociated with the audience. In embodiments, the content selectionengine 213 may be configured to identify a plurality of content based ondata processed by the information intake module 212—e.g., an identifiedaudience may be associated with a plurality of campaigns having discretecontent and/or a single campaign for an audience may be associated witha plurality of content. According to various embodiments, the contentselection engine 213 may include a rules engine—e.g., an engine thatimplements a pattern matching algorithm, such as a Rete algorithm. Forexample, the content selection engine 213 may assert data associatedwith a mobile device and/or user (e.g., information received from themobile device and/or supplemented information, such as metadata) inworking memory (e.g., main memory 210 and/or storage 221) that isaccessible by the content selection engine 213. The content selectionengine 213 may match this asserted data to one or more rules, such asrules for identifying an audience and/or rules for identifying contentfor an audience (e.g., through a campaign).

In various embodiments, the content selection engine 213 may parse dataassociated with the mobile device and/or user into one or more features.The content selection engine 213 may match these features with one ormore predicates upon which an audience may be conditioned. If thecondition evaluated for an audience evaluates to true, then content forthe identified audience may be identified. However, the condition for anaudience may be comprised of multiple complex and/or nested logicalstatements so that not all predicates must match features in order forthe condition of an audience to evaluate to true (e.g., an audienceconditioned upon users of mobile devices that frequently purchase seatupgrades on flights or users of mobile devices that are rewards memberswould evaluate to true if either predicate is matched to a feature of auser associated with a mobile device).

In embodiments, the content selection engine 213 may be configured tomatch one or more predicates to one or more features based on real-time,variable, and/or relative data. For example, the content selectionengine 213 may match a predicate defined as a three-hour window beforedeparture of a flight on which a user is scheduled to travel based onmetadata the indicates the flight has been delayed; therefore, thethree-hour window, and by association, the predicate, may change basedon metadata that is to supplement the information received from a mobiledevice, such as metadata from a database associated with the airlineproviding the flight. In another example, the content selection engine213 may match a predicate defined as a three-mile radius from a retaillocation.

According to an embodiment, the content selection engine 213 may beadapted to select content based on user interaction, or the absencethereof, with the past content. The information intake module 212 mayreceive an indication that a user did or did not interact with (e.g.,view, click, tap, and/or convert) content included in a message providedto a mobile device associated with the user, and provide that indicationto the content selection engine 213. The content selection engine 213may use the indication of the user interaction, which may be anindication of an absence of user interaction, to identify contentassociated with a campaign to provide to a mobile device associated withthat user in the future. For example, the information definition module211 may receive data from a marketer that defines a campaign havingfirst content that includes an upgraded seat on a flight at a firstprice and further defines the campaign as having future content thatincludes offers, to be delivered to a mobile device associated with thatuser, with prices reduced by ten (10) percent. Thereafter, the contentselection engine 213 may identify the first content, the contentdelivery module 214 may provide a message having the first content to amobile device, and the information intake module 212 may receive anindication that the user of the mobile device did not interact with(e.g., did not tap and/or convert) the offer included in the firstcontent. Accordingly, when the content selection engine 213 identifiesfuture content to be provided to a mobile device associated with thatuser, an offer included in the content may have a price reduced by ten(10) percent from the first price.

As the content selection engine 213 identifies one or more audiencesbased on data processed from a mobile device, the content selectionengine may identify content based on the data processed from the mobiledevice. In some embodiments, the identification of content includesoperations for identifying one or more audiences that are to include themobile device and/or user. An identified audience may be associated withone or more campaigns and the one or more campaigns may be furtherassociated with content (or a plurality of discrete content). Therefore,the content selection engine 213 may identify content for an audiencebased on the identification of a campaign that includes the audience.

In connection with the identification of content by the contentselection engine 213, the content delivery module 214 may be configuredto generate a message to provide the content to a mobile deviceassociated with a user, such as a mobile device, associated with a user,from which information was received at the information intake module 212and/or another mobile device associated with that user. The contentdelivery module 214 may be configured to package the content as amessage for a particular application at a mobile device, such asaccording to a particular application programming interface (“API”). Invarious embodiments, the message may be generated from a template, whichmay be selected based on data received from a marketer through theinformation definition module 211 (e.g., as data is received from themarketer to define a campaign). A template may include, for example, oneor more variables that are to be resolved at the mobile device—forexample, a name of a user may be inserted as a variable so that the samemessage is suitable for multiple devices, but is presented to users ofthose devices with personalized names or other information. In someembodiments, a relevancy value may be influenced by the analytics module215. For example, content delivered to a mobile device that isfrequently selected (e.g., by similarly situated devices and/or users)may cause the content delivery module 214 to correspondingly increaseand/or decrease the relevancy value associated with a particularpredicate.

In various embodiments, the content delivery module 214 may beconfigured to determine the relevance of a campaign and/or associatedcontent to a mobile device and/or user. This relevance may be beneficialin instances in which a plurality of discrete content is to be deliveredto a mobile device having limited display space, storage capacity,and/or reception capacity and the plurality of discrete content may beunacceptable based on limitations of the mobile device. Accordingly, thecontent delivery module 214 may be configured to calculate a relevancyvalue associated with a campaign and/or content to be provided to anaudience. In one embodiment, one or more predicates upon which anaudience is conditioned may be associated with respective values, andthe content delivery module 214 may calculate the relevancy value basedon one or more predicates that match one or more features parsed fromdata (e.g., information and/or metadata) associated with a user and/ormobile device. Various examples of relevancy values may include arelatively greater relevancy value associated with a relatively smallertime window, a relatively greater relevancy value associated with arelatively smaller geographic area, and the like.

In various embodiments, the calculated relevancy value may determine ifand/or how the content delivery module 214 is to generate a message toprovide the content, associated with the relevancy value, to a mobiledevice associated with a user. For example, the content delivery module214 may calculate a relevancy value associated with a campaign based onthe predicates matched to features upon which an audience associatedwith the campaign is conditioned; if the calculated relevancy valueassociated with the campaign does not exceed a predetermined threshold,then the content associated with the campaign may not be delivered tothe associated audience. According to an embodiment, the contentdelivery module 214 may provide an indication of one or more relevancyvalues to a mobile device. In such embodiments, the relevancy values mayindicate the relative relevance of discrete content to the mobile deviceso that the mobile device may present content associated with a higherrelevancy value before content associated with a lower relevancy value.

In one embodiment, the content delivery module 214 may be adapted togenerate and/or save messages that include content based on therelevancy value. Where the calculated relevancy value is not sufficient(e.g., does not exceed a predetermined threshold), then the contentdelivery module 214 may save the message or delay generating the messageuntil, for example, the relevancy value is increased (e.g., a newfeature of data associated with a user and/or mobile device is matchedto another predicate having a higher relevancy value).

According to various embodiments, the content delivery module 214 may beadapted to determine that content provided to a mobile device is nolonger relevant. Accordingly, the content delivery module 214 mayprovide an indication to that mobile device that the foregoing contentis no longer relevant so that the mobile device may, for example, ceaseto display and/or delete the content. For example, content provided to aplurality of devices associated with a plurality of users may include anoffer that is finite, such as a seat upgrade on a flight. After theavailability of the offer has been exhausted by one or more users (e.g.,a user converted the only available seat upgrade on that flight), thenthe content delivery module 214 may provide an indication to theremaining devices to delete that offer, since that offer is no longeravailable to be accepted.

The analytics module 215 may be configured to aggregate and/orsynthesize data associated with one or more audiences, one or morecampaigns, and/or one or more content. In embodiments, a message that isto provide content to a mobile device may be provided in an applicationat that mobile device. When a user opens the application and views thecontent provided by the message (e.g., as a click and/or a tap at themobile device), the application may cause an indication to be providedto the information intake module 212 that the content has been viewed.This indication may be provided to the analytics module 215 so that theanalytics module can determine a subset of users of an audience thatopened and/or viewed the provided content. In one embodiment, thecontent may include an offer that a user may accept (e.g., the offer maybe converted) and the information intake module 212 may receive anindication from the mobile device that the offer has been converted.Similarly, the information intake module 212 may receive, and provide tothe analytics module 215, an indication that the provided offer has notbeen converted (i.e., the user did not accept the offer included in thecontent, although it was viewed and/or selected by the user at themobile device).

The analytics module 215 may include operations associated with thecollection and aggregation of metrics. For example, the analytics module215 may collect data associated with one or more devices, such as anumber of devices that receive messages, a number and/or type ofapplication at one or more devices that is configured to receivemessages having content, a number of devices and/or users identified foran audience, a number of devices and/or users that are associated with acampaign (e.g., included in an audience associated with a campaign), anumber of devices at which messages having content were viewed, a numberof devices at which content from messages was interacted with (e.g.,clicked and/or tapped), a number of devices from which information wasreceived, a number of received requests for content, a number ofcampaigns that match data audiences having one or more devices, a numberof audiences that are identified for one or more devices and/or users,and essentially any other information associated with the contentselection and delivery. In other embodiments, the analytics module 215may perform operations associated with predictive analytics, such asidentifying content frequently viewed, interacted with, and/or convertedby similar users and/or audiences—e.g., similar devices, similar timezones, similar itineraries, similar locations, similar metadata used tosupplement information, and the like. In various embodiments, theanalytics module 215 may provide data collected and/or predicted to thecontent delivery module 214, which may then adjust a relevancy valueassociated with a predicate to increase the likelihood that relevantcontent may be delivered to devices of users.

The analytics module 215 may be configured to provide an interface overa network (e.g., an SaaS interface) that is adapted to presentanalytical information. For example, the analytics module 215 maypresent a number of content views by one or more users, a number ofcontent identifications by the content selection engine 213, a number ofrequests received from mobile devices for content, a number of requestsfor which content was or was not identified, and/or a click-throughrate. The interface provided by the analytics module 215 may beconfigurable by, for example, a marketer to present analytical data fora specific time period and/or a specific type of analytic data.

According to an embodiment, the analytics module 215 may be adapted toidentify a plurality of devices and/or users, which may be similarlysituated and may be of interest to one or more marketers. The analyticsmodule 215 may observe one or more trends across data (e.g., informationand/or metadata) associated with a plurality of devices and/or users andmay provide an indication of the one or more observed trends to one ormore marketers as a potential audience that the one or more marketersmay wish to target with content. For example, the analytics module 215may observe a plurality of devices at a particular location during aparticular time frame. In another example, the analytics module 215 mayobserve that a plurality of offers provided in a plurality of contentwas not converted at a first price. The marketer may accordingly selectthe potential audience, indicated by the analytics module 215, as anaudience associated with a new or existing campaign that is to receivecontent associated with that campaign.

In one embodiment, the analytics module 215 may be adapted to provide anindication to one or more marketers that a predefined audience has beenidentified and is available to be provided content. This indication maybe provided through an interface (e.g., an SaaS interface) and/or analert that is sent to a device associated with a marketer. The audiencemay be defined by a different marketer than the marketer to which theindication is provided, e.g., so that marketers may work cooperativelyin a partnership network to provide content to various disparateaudiences. For example, a first marketer may define an audience thatincludes devices located in Portland, Oreg., between a beginning dateand an end date. Further, the first marketer may elect to notify one ormore partner marketers when a certain number of devices is available inthat audience. Thereafter, when the certain number of devices isidentified as included in that audience, the one or more partnermarketers may be notified, by the analytics module 215, that theaudience is available to receive additional content. In variousembodiments, the notification provided by the analytics module 215 maybe provided to a plurality of partner marketers as, for example, areverse auction so that only one partner marketer may provide content tothat predefined audience associated with the first marketer's campaign.

With respect to FIG. 3, a block diagram is shown illustrating a system300 including a content selection and delivery computing system 305 thatis communicatively coupled with a plurality of databases 310-315 toupdate information used for content selection, in accordance withvarious embodiments. The content selection and delivery computing system305 may be or may be included in the content selection and deliverycomputing system 150 of FIG. 1.

The system 300 includes, but is not limited to, a content selection anddelivery computing system 305, at least one first-party database 310,and one or more third-party databases 315 a-b. The computing system 305may be configured to receive data from one or more of the databases310-315 and to supplement information associated with a mobile deviceand/or a user with this received data as metadata. Accordingly, thecomputing system 305 may have available thereto relatively large androbust data for one or more mobile devices and/or users with which toidentify audiences and/or content to be provided to mobile devices.Further, the scope of this comprehensive data may be made available bythe computing system 305 to marketers so that marketers are able todefine various dynamic audiences based on, for example, real-time and/ortangentially related metadata.

The computing system 305 may be communicatively coupled with afirst-party database 310 via an interconnect 370. The interconnect 370may be, for example, a network, such as a LAN, a WAN, a Fibre Channel(“FC”) network, a storage area network (“SAN”), or a combinationthereof. Alternatively, the interconnect 370 may be one or more buses,such as where the first-party database 310 is implemented locally (e.g.,as storage for the computing device 305). In various embodiments, thecomputing device 305 may be configured to access the first-partydatabase 310 to store and/or retrieve data associated with the selectionof content for a mobile device, e.g., metadata.

In various embodiments, the computing system 305 may be adapted toreceive information, such as context and an itinerary associated with amobile device and/or a user, and store this data at the first-partydatabase 310. The computing system 305 may adapt information receivedfrom a mobile device to recognize or observe one or more trends and/orpatterns associated with a mobile device and/or a user. For example, thecomputing system 305 may be adapted to observe that a user associatedwith a plurality of mobile devices (e.g., a smartphone and a tablet)frequently visits Portland, Oreg., and/or the user frequently purchasesseat upgrades on flights that are scheduled to depart in the earlymorning hours (e.g., between 3:00 a.m. and 7:00 a.m.). Subsequently, thecomputing system 305 may store the one or more observed trends in thefirst-party database 310. In various embodiments, this metadata may beused to supplement (e.g., enhance) information associated with themobile device and/or a user of the mobile device.

According to embodiments, the computing system 305 may becommunicatively coupled with one or more third-party databases 315 a-b.The network 330 may be a public or private network, and/or a combinationof different types of networks. The network 130 may be implemented as aLAN, a WAN, an FC network, a SAN, or a combination thereof. The network330 may communicatively couple the computing system 305 with the one ormore third-party databases 315 a-b. The third-party databases 315 a-bmay be provided by a service that is separate from the computing device305 and/or the first-party database 310. For example, the third-partydatabases 315 a-b may be databases associated with an airline or travelprovider, a retail provided, a hotel provider, a loyalty programprovider, a weather service, a location service, or essentially anyother service that may supplement information associated with a mobiledevice and/or a user. The computing system 305 may be configured toreceive data from the third-party databases (e.g., in response to arequest from the computing system 305) and supplement informationassociated with a mobile device and/or a user with the received data asmetadata.

In one embodiment, at least one of the first-party database 310 and/orone or more of the third-party databases 315 a-b may include informationthat is germane, but may be tangential, to information associated with amobile device and/or a user. For example, one or more of the databases310, 315 a-b may include geospatial coordinates that correspond to hotelnames. The computing device 305 may receive information from a mobiledevice that includes a context having the geospatial coordinates of themobile device. Accordingly, the computing device 305 may be configuredto query one or more of the databases 310, 315 a-b to retrieve a hotelname corresponding to the geospatial coordinates indicated by the mobiledevice. The computing device 305 may then identify an audience, such asan audience that is defined as users within one mile of the hotel, andidentify content for that audience, such as present an offer for adiscounted room at that hotel. Other examples of data that may beprovided to the computing system 305 by one or more of the databases310, 315 a-b include the status of a flight, the status of a user (e.g.,checked-in status, checked-out status), the location associated with auser, the itinerary associated with a user, reservations associated witha user, loyalty and customer relationship management (“CRM”) informationassociated with a user, demographic and/or psychographic informationassociated with a user, traffic associated with a route between the userand a scheduled location (e.g., an airport), and other similarinformation.

With respect to FIG. 4, a system 400 illustrates a mobile device 405that is to communicate with a marketer computing device 430 and acontent selection and delivery computing system 450, in accordance withvarious embodiments. In embodiments, the mobile device may be one of themobile devices 110 a-b, the marketer computing device 430 may be themarketer computing device 160, and the content selection and deliverycomputing system 450 may be the content selection and delivery computingsystem 150 of FIG. 1.

In embodiments, a marketer may provide an application 410 that is to beexecuted on a mobile device 405. The application 410 may be a nativeapplication developed with, for example, a software development kit(“SDK”) that provides the application 410 with a content service 415 tocommunicate with the content selection and delivery computing system450, for example, through various libraries and/or APIs.

In connection with the communication between mobile device 405 and thecontent selection and delivery computing system 450, the marketercomputing device 430 may define one or more audiences that are to beprovided content. To do so, the content selection and delivery computingsystem 450 may present to the marketer computing device 430 a marketerinterface 451 adapted to receive data. Correspondingly, the marketercomputing device 430 may communicate data 431 to the content selectionand delivery computing system 450 through the interface 451. In variousembodiments, this data 431 may define, for example, an audience (or thepredicates upon which an audience is conditioned), a campaign with whichthe audience is associated, and/or content, associated with thecampaign, to be provided to the audience.

The marketer computing device 430 may provide data to the application410 (e.g., for presentation to a user of the mobile device 405) over anetwork, such as data associated with one or more reservations,itineraries, and/or loyalty programs associated with a user of themobile device 405. Data provided by the marketer computing device 430may be communicated by the application 410 to the content service 415.The content service 415 may be configured to aggregate some, all, ornone of the data originating at the marketer computing device 430 withadditional data associated with the mobile device 405 and/or a user ofthe mobile device 405, such as location information (e.g., geospatialcoordinates), a device identifier, a user identifier, an applicationidentifier, a marketer identifier, etc. The content service 415 may beconfigured to transmit this aggregated information 416 over a network tothe content selection and delivery computing system 450.

Based on information 416 received from the mobile device 405, thecontent selection and delivery computing system 450 may be configured toidentify an audience (e.g., defined by marketer data 431) that is toinclude the mobile device 405 and/or a user thereof. According toembodiments, this identification operation may include operationsassociated with supplementing the information 416 with metadata (e.g.,data retrieved from one of more databases) that may be related to theinformation 416. The content selection and delivery computing system 450may correspondingly identify content that is to be provided to theaudience by, for example, identifying a campaign with which the audienceis associated, and identifying content associated with the identifiedcampaign. The content selection and delivery computing system 450 maythen generate a message 452 that is to include the content and providethe message 452 to the application 410 via the content service 415 sothat the application 410 may present the content to the user on adisplay of the mobile device 405.

In embodiments, the information 416 provided by the application 410,through the content service 415, to the content selection and deliverycomputing system 450 may include a request for content. Accordingly, thecontent selection and delivery computing system 450 may provide themessage 452 based on the received request. In one embodiment, thecontent selection and delivery computing system 450 may calculate arelevancy value, associated with the campaign, based on respectiveweighting values associated with respective predicates, upon which theaudience is conditioned, that match features from data associated withthe mobile device 405 and/or user (e.g., the information 416 and/ormetadata). If the calculated relevancy value is insufficient (e.g., doesnot exceed a predetermined threshold), then the content selection anddelivery computing system 450 may determine that the message 452 is notto be immediately delivered to the mobile device 405 (although thecontent selection and delivery computing system 450 may save the message452 for later delivery). Furthermore, a plurality of discrete contentmay be identified based on the data associated with the mobile device405 and/or the user (e.g., the information and/or metadata)—e.g., thecontent selection and delivery computing system 450 may identify twoaudiences, associated with two campaigns, and correspondingly identifyfirst content associated with the first campaign and second contentassociated with the second campaign. The content selection and deliverycomputing system 450 may calculate respective relevancy valuesassociated with each campaign and provide an indication of therespective relevancy values, in the message 452, to the application 410(via the content service 415) so that the application 410 presentscontent associated with the higher relevancy value before contentassociated with the lower relevancy value.

In various embodiments, such as embodiments wherein the message 452 isto be provided as a “push” message, reception of the message 452 at thecontent service 415 may cause the application 410 to present anotification, which may be presented by the application 410 at a windowthat is not necessarily associated with the application, such as a “lockscreen” of the mobile device 405. Based on the content of the message452, detection of a selection by the user of the notification may causeone or more events, such as launching of the application 410 to aspecific screen (e.g., to display detailed information about a status ofa flight, a customized news story, and/or weather information). Thus,the message 452 may include, for example, textual content (e.g., 140characters) to be presented to a user on a display of the mobile device405 as well as instruction content (e.g., sixty-four kilobytes) toenable an automated or responsive action by the application 410 once auser selection of the notification is detected. For example, the message452 may cause the application to present a notification that a flightassociated with the user is delayed and, further, the message 452 mayinclude instruction content that causes a message inbox to launch andpresent a marketing message associated with the delayed flight and/orlaunch an application (e.g., an airline booking agent application) sothat the user may select a different flight on which to travel.

According to some embodiments, the content selection and deliverycomputing system 450 may insert sophisticated or complex instructioncontent that may exceed the capacity of communication approach fortransmission of the message 452. In such embodiments, the contentselection and delivery computing system 450 may be adapted to includereference instruction content in the message 452 that corresponds toactual instruction content, which may be stored in, for example, storageand/or a database. Accordingly, a detection of a user selection of themessage 452 (e.g., at the application 410 and/or through a notification)may cause the mobile device 405 to transmit an indication of theselected message 452 to the content selection and delivery computingsystem 450. Based on this indication, content selection and deliverycomputing system 450 may identify actual instruction content thatcorresponds to the reference instruction content included in the message452 and send that identified actual instruction content to the contentservice 415. For example, the message 452 may include a referenceinstruction content to a video file that exceeds the capacity of themessage 452. In response to detection of user selection of the message452, the content selection and delivery computing system 450 maytransmit actual instruction content to the content service 415 thatcauses the mobile device 405 to download the video file (e.g., in thebackground). In another example, reference instruction content in amessage 452 may include actual instruction content to download, forexample, another application (e.g., a game) and/or supplementary contentfor the other application (e.g., “in-app content”), e.g., when anaudience is identified that includes the mobile device 405 and/or a userthereof.

Turning now to FIG. 5, a flow diagram is shown illustrating operationsassociated with content selection and delivery by a computing system, inaccordance with various embodiments. The operations 505-560 may beperformed by, for example, the content selection and delivery computingsystem 150 illustrated in FIG. 1. According to various embodiments, thedatabases illustrated at operations 530, 540 may include operationsassociated with communicating with one or more databases 310, 315 a-billustrated in FIG. 3.

Beginning first with operation 505, information is provided by a mobiledevice associated with a user. In various embodiments, this informationmay include, for example, information associated with the user (e.g.,age, gender, an itinerary, a reservation, and the like) and/orinformation associated with the mobile device (e.g., a deviceidentifier, location information, and the like). At operation 510, thisinformation may be normalized to, for example, reduce redundancy and/oradapt the information to reflect a current situation. In connection withthe normalization operation 510, operations 515, 520 may be performed tosupplement the information with metadata related to the information. Atoperation 515, batch processing may be performed to automaticallysupplement the information with data about, for example, a place (e.g.,a hotel and/or airport) proximate to geospatial coordinates from theinformation, social media account associated with the user, ademographic associated with the user, a psychographic associated withthe user, and/or another classification. At operation 520, real timedata and/or processing may supplement the information so that the mostrecent situation associated with the user may be processed. Further tooperations 510, 515, 520, an operation 525 to enhance the informationwith additional metadata may be performed. In embodiments, theenhancement operation 525 may be associated with an operation 530 forsupplementing the information with a history associated with the userand/or mobile device. Historical data that may supplement theinformation at operation 530 may include, for example, one or more pastitineraries, locations, statuses, reservations, purchases, and/or othersimilar historical data associated with the user and/or one or moremobile devices associated with the user. Further, the enhancementoperation 525 may be associated with an operation 535 for supplementingthe information with enhanced features that may adapt the information toa format that may be matched with predicates for an audience—forexample, an age of the user may be converted to an age range, a numberof minutes between a current time and the start time of an eventassociated with the user (e.g., a departure time for a flight) may becalculated, a specific location may be expanded to a hierarchy ofgeographical locations (e.g., O'Hare Airport is in Chicago, Ill., in theUnited States, in North America, and in the Midwestern region).

In the aggregate, the data (e.g., the information and/or supplementingmetadata) may be utilized by an operation 540 that is to match that datawith content. The matching operation 540 may include, for example,operations associated with identifying one or more discrete featuresfrom the data associated with the mobile device and/or user. The one ormore identified features may correspond to one or more predicates uponwhich one or more audiences are conditioned. Accordingly, one or moreaudiences may be identified by matching the identified features to oneor more predicates for an audience. In connection with the matchingoperation 540, an operation 545 for identifying one or more campaignsthat are associated with the one or more features may be performed.Operation 545 may identify content associated with the one or morecampaigns. In embodiments, the identified content is to be provided to amobile device associated with the user by association through the one ormore campaigns with which the one or more identified audiences areassociated.

In an embodiment, no defined content may be available for the mobiledevice—e.g., the identified audience may not be immediately associatedwith at least one campaign and/or no content has been defined or isimmediately available for the one or more campaigns. Therefore, thematching operation 540 may include identifying that no defined contentis available. In such an embodiment, the content may include, forexample, an indication that no defined content is available for themobile device—e.g., an indication that there are no offers, alerts,and/or notifications to be presented to the user of the mobile device.This indication may be provided in embodiments in which a mobile deviceis configured to request content.

At operation 550, one or more relevancy values may be calculated foridentified content so that one or more discrete content may be ranked toestimate a relevancy to the user. The ranking operation 550 may includeoperations associated with accounting for (e.g., aggregating) respectiveweighting values associated with the one or more predicatescorresponding to one or more matched features. Therefore, a calculatedrelevancy value may be calculated based upon the one or more predicatesupon which an audience is conditioned, and the relevancy value maythusly be associated with the campaign that is to include the audience.In various embodiments, a plurality of relevancy values may becalculated to respectively correspond to a plurality of discretecontent. According to embodiments, the one or more calculated relevancyvalues may be evaluated to determine whether one or more contentassociated with one or more campaigns is sufficiently relevant to theuser—e.g., a relevancy value may be compared to a predeterminedthreshold that must be met or exceeded and/or content associated with alower relevancy value may be evaluated as insufficiently relevantcompared to content associated with higher relevancy values (e.g., ininstances in which a threshold amount of content may be provided to amobile device).

In various embodiments, the ranking operation 550 may include anoperation 555 that takes into account past behavior associated with theuser. For example, a relevancy value may be adjusted to account for pastindications received from a mobile device associated with the user thatreflect user interaction with content, such as a view of content, a timefrom content delivery to the viewing of the content, a conversion ofcontent (e.g., accepting and/or purchasing an offer included incontent), a location and/or time at which user interaction with contentoccurs or is frequently absent, and other similar behavior.

At operation 560, content may be provided to a mobile device associatedwith the user. According to various embodiments, this mobile device towhich the content is provided may be the same mobile device thatprovided the information at operation 505, another mobile deviceassociated with the user, and/or a plurality of mobile devicesassociated with the user (e.g., operation 560 may include providingcontent to both a smartphone and a tablet computer associated with theuser).

In connection with provision of the content at operation 560, anoperation 565 may include recording activity and/or the absence ofactivity with the content at the mobile device. A mobile deviceassociated with the user may detect interaction with the providedcontent and/or the absence of interaction with the content. As this datais recorded, it may be accounted for in various operations 525, 530,550, 555 associated with enhancing information associated with the userbased on a history associated with the user and/or adjusting calculationof one or more relevancy values based on behavior associated with theuser. Effectively, the recordation operation 565 may create a feedbackloop for the identification of content associated with campaigns and/orthe calculation of relevancy values associated with campaigns thatdynamically adapts to user history and/or behavior in an attempt toincrease the likelihood that relevant content may be provided to amobile device associated with the user at operation 560.

In various embodiments, the recordation operation 565 includesoperations associated with detecting and recording that a user does ordoes not view content (e.g., that the content is presented on a displayof a mobile device), the user does or does not interact with the content(e.g., a tap, click, or other selection method of the content isdetected or absent at the mobile device), the user does or does notconvert the content (e.g., that the user does or does not acceptcontent, such as by accepting an offer and/or abandoning an eCommerceshopping cart). This feedback loop may cause additional iterationsthrough one or more operations 525-565 so that content provided to theuser at operation 560 may be more likely to be relevant to the user. Forexample, at one or more additional iterations through operation 540,additional content may be identified having a reduced price point basedon the non-conversion of first content provided to the mobile device ata first iteration through operation 560.

Now with reference to FIG. 6, a sequence 600 illustrates a plurality ofoperations 650-664 associated with the definition, selection, anddelivery of content to a mobile device 605, in accordance with variousembodiments. In some embodiments, the operations of the sequence 600 maybe transposed or contemporaneous. The illustrated sequence 600 can beperformed within an embodiment of components shown in FIG. 1.Accordingly, the mobile device 605 may be one of the mobile devices 110a-b, the network A 620 may be the network 130, the content selection anddelivery computing system 610 may be the content selection and deliverycomputing system 150, the network B 625 may be the interconnect 170,and/or the marketer computing device 615 may be the marketer computingdevice 160.

Beginning with operation 650, the content selection and deliverycomputing system 610 may be adapted to provide an SaaS interface to themarketer computing device 615 over the network B 625. Continuing tooperation 652, the marketer computing device 615 may be adapted totransmit data that defines a campaign through the provided SaaSinterface. In various embodiments, data that defines a campaign mayinclude content that is associated with that campaign, such as one ormore offers, alerts, notifications, and/or other similar informationthat may be related based on, for example, a common time frame and/ortheme (e.g., airline and/or travel provider information, hotel and/orlodging provider information, retail provider information, and/orloyalty program provider information). Further data that is to define acampaign may include a definition of how content is to be provided toone or more mobile devices—e.g., whether provision of content associatedwith the campaign is to be initiated by the content selection anddelivery computing system 610 (e.g., a “push” campaign) or as a responseto a request from a mobile device (e.g., a “pull” campaign).

At operation 654, the marketer computing device 615 may define one ormore audiences through the provided interface. The marketer computingdevice 615 may associate an audience with a campaign so that contentassociated with that campaign may be provided to the audience associatedwith that campaign. As illustrated at operation 656, the mobile device605 may transmit information associated with the mobile device 605and/or a user thereof to the content selection and delivery computingsystem 610. Optionally, the mobile device 605 may transmit a request forcontent to the content selection and delivery computing system 610, asshown by operation 658. This operation 658 may be omitted fromembodiments in which the marketer computing device 615 has provided dataindicating that the campaign is a push campaign.

Based on the information provided by the mobile device 605, the contentselection and delivery computing system 610 may provide content to themobile device 605 at operation 660. In embodiments, operation 660 mayinclude operations associated with identifying an audience that isassociated with a campaign based on the information provided by themobile device 605 and identifying content associated with that campaignthat is to be provided to the mobile device 605. Further, operation 660may include operations associated with computing a relevancy valueassociated with the campaign based on one or more predicates upon whichthe audience is conditioned that correspond to one or more featuresassociated with the information (including, for example, metadata withwhich the content selection and delivery computing system 610 maysupplement the information). Based on the relevancy value, the contentselection and delivery computing system 610 may determine that operation660 is to be omitted (and, consequently, operation 662) or delayed(e.g., the content is to be saved for later provision).

The user of the mobile device 605 may interact with or ignore thecontent and, correspondingly, an indication of this interaction or lackthereof may be provided to the content selection and delivery computingsystem 610 at operation 662. The content selection and deliverycomputing system 610 may observe this interaction or lack thereof toadapt future operations associated with the provision of the content tothe mobile device 605. At further operation 664, the content selectionand delivery computing system 610 may be adapted to provide analyticalinformation to the marketer computing device 615 based on the observedinteraction or lack thereof at operation 662.

With respect to FIG. 7, a flow diagram illustrates a method 700 foridentifying content to be provided to a mobile device based oninformation provided by a mobile device, in accordance with variousembodiments. The method 700 may be performed by a server computingsystem, such as the content selection and delivery computing system 150of FIG. 1. While FIG. 7 illustrates a plurality of sequentialoperations, one of ordinary skill would understand that one or moreoperations of the method 700 may be transposed and/or performedcontemporaneously.

To begin, the method 700 may include an operation 705 for processingreceived data that is to define at least one of a campaign and anaudience. According to embodiments, a marketer may input data (e.g., ata web interface) that defines a campaign associated with an audience andcontent; the audience associated with the campaign is to be providedcontent associated with the campaign.

At operation 710, the method 700 may include processing informationreceived from a mobile device. According to embodiments, thisinformation may include information about the mobile device and/or auser of the mobile device. In some embodiments, information processedaccording to operation 710 may be processed with a request from themobile device for content. Based on the information received from themobile device, operation 715 may include identifying an audienceassociated with the campaign. The audience may be identified to includeone or both of the mobile device and the user. According to embodiments,the operation 715 may comprise operations associated with supplementingthe processed information with metadata that is associated with at leastone of the mobile device and the user. Further, operation 715 mayinclude operations associated with parsing one or more features from theinformation and/or metadata and matching the one or more features to oneor more predicates upon which the audience is conditioned. In additionto an audience associated with the campaign, the method 700 may includean operation 720 for identifying content associated with the campaign.

Operation 725 may include calculating a relevancy value associated withthe campaign. In various embodiments, operation 725 may include, forexample aggregating one or more respective values associated with one ormore predicates of the audience that correspond to the one or morefeatures associated with the information and/or metadata. In someembodiments, the relevancy value may be adjusted to reflect pastinformation and/or metadata associated with the user. At decision block730, the method 700 may include determining if the relevancy value issufficient to provide the campaign's associated content to a mobiledevice of the user. In various embodiments, the relevancy value may becompared to a predetermined threshold. If the relevancy value isinsufficient (e.g., the relevancy value does not meet or exceed thepredetermined threshold), then the method 700 may reach an operation 745for providing analytical information to a marketer associated with thecampaign. Conversely, if the relevancy value is sufficient the method700 may reach operation 735. In an embodiment, operation 735 includesprocessing a request, received from a mobile device associated with theuser, for content. This operation 735 may be absent in embodiments inwhich the marketer defines the campaign as a push campaign. Operation740 includes generating a message to provide the content to the mobiledevice. In various embodiments, this operation 740 includes transmittingthe generated message to the mobile device over a network. At the lastillustrated operation 745, the method 700 may include providinganalytical information to the marketer associated with the campaign.This analytical information may allow the marketer to evaluate therelevance of the campaign (e.g., a level of interest in the campaignexpressed by an associated audience and/or a success rate in convertingcontent presented to users included in the audience associated with thecampaign).

Turning to FIG. 8, a flow diagram illustrates a method 800 foridentifying content that is relevant to a mobile device based oninformation provided by a mobile device, in accordance with variousembodiments. The method 800 may be performed by a server computingsystem, such as the content selection and delivery computing system 150of FIG. 1. While FIG. 8 illustrates a plurality of sequentialoperations, one of ordinary skill would understand that one or moreoperations of the method 800 may be transposed and/or performedcontemporaneously.

To begin, the method 800 may include an operation 805 for receivinginformation from a mobile device. According to embodiments, thisinformation may include information about the mobile device and/or auser of the mobile device. In some embodiments, information processedaccording to operation 805 may be processed with a request from themobile device for content. Based on the information received from themobile device, operation 810 may include identifying content based onthe information received from the mobile device. According toembodiments, the operation 810 may comprise operations associated withsupplementing the received information with metadata that is associatedwith at least one of the mobile device and the user. Further, operation810 may include operations associated with parsing one or more featuresfrom the information and/or metadata and matching the one or morefeatures to one or more predicates upon which the identification of thecontent is conditioned. Accordingly, where a sufficient amount ofpredicates match a sufficient number of features, content may beidentified that is to be provided to a mobile device associated with auser. In some embodiments, this operation 810 may include operationsassociated with a rules engine having rules that are to fire when asufficient number of features match a sufficient number of predicatesthat comprise the conditions of the rules. For example, the informationand/or metadata associated with the user and/or mobile device may beasserted as facts in the rules engine; the asserted facts may cause arule to fire, which identifies content to be provided to a mobile deviceassociated with the user.

Operation 815 may include calculating a relevancy value associated withthe content. In various embodiments, operation 815 may include, forexample, aggregating one or more respective values associated with oneor more predicates, required for identifying the content, thatcorrespond to the one or more features associated with the informationand/or metadata. In some embodiments, the relevancy value may beadjusted to reflect past information and/or metadata associated with theuser. In various embodiments, the method 800 may iterate throughoperations 810, 815 one or more times where the information and/ormetadata cause a plurality of discrete content to be identified. In suchembodiments, respective relevancy values may be identified for discretecontent of the plurality.

Decision block 820 may include determining if the identified content isto be provided to a mobile device associated with the user based on arequest. If content is to be provided to a mobile device of the userbased on a request, the method 800 may include an operation forreceiving the request for the content from the mobile device. In variousembodiments, this request may be included with information received fromthe mobile device that is associated with the user.

According to embodiments, operation 830 including sending the identifiedcontent to the mobile device only where the computed relevancy valuemeets or exceeds a predetermined threshold. In embodiments in which aplurality of discrete content is identified, each respective relevancyvalue may need to meet or exceed the predetermined threshold. Further,an indication of the respective relevancy values may be sent inconnection with the plurality of content to indicate to the mobiledevice a relative importance of each discrete content (e.g., so that themobile device may determine which content to present first).

In various embodiments, content may become stale or unavailable. Forexample, content that includes an offer to upgrade a seat on a flightmay become stale after the flight departs or unavailable after theavailable seat upgrades have been purchased. In another example, contentthat includes a notification to be presented to the user at a mobiledevice where the mobile device is within a geo-fence would become staleafter the mobile device exits the geo-fence. In such embodiments, themethod 800 includes decision block 835 for determining whether thecontent is no longer relevant to the mobile device (e.g., the contenthas become stale and/or is no longer available). Where the determinationis positive, the method 800 may reach an operation 840 for sending anindication that the content is no longer relevant to the mobile device.In embodiments, this indication may allow the mobile device to removethe content.

With reference to FIG. 9, a flow diagram shows a method 900 forcomputing analytical information associated with the selection anddelivery of content to a mobile device, in accordance with variousembodiments. The method 900 may be performed by a server computingsystem, such as the content selection and delivery computing system 150of FIG. 1. While FIG. 9 illustrates a plurality of sequentialoperations, one of ordinary skill would understand that one or moreoperations of the method 900 may be transposed and/or performedcontemporaneously.

The method 900 may begin with operation 905 for collecting dataassociated with one or more of a mobile device that is to sendinformation associated with the mobile device and/or a user, content tobe provided to a mobile device associated with the user, and/or amarketer associated with the content. In various embodiments, thiscollected data may include data (e.g., information and/or metadata)associated with a user, a number of devices that receive content, anumber and/or type of application at one or more devices that isconfigured to receive content, a number of devices and/or usersidentified for an audience, a number of devices and/or users that areassociated with a campaign (e.g., included in an audience associatedwith a campaign), a number of devices at which content is viewed, anumber of devices at which content is interacted with (e.g., clickedand/or tapped), a number of devices from which information is received,a number of received requests for content, a number of campaigns thatmatch data audiences having one or more devices, a number of audiencesthat are identified for one or more devices and/or users, andessentially any other information associated with the content selectionand delivery.

Based on the collected data, operation 910 may include computinganalytical information. In embodiments, operation 910 may includeaggregating collected information. In various embodiments, thisoperation 910 may include one or more operations associated withidentifying content that is frequently viewed, interacted with, and/orconverted by similar users and/or audiences—e.g., similar devices,similar time zones, similar itineraries, similar locations, similarmetadata used to supplement information, and the like. Further,operation 910 may include operations associated with predictiveanalytics, such as forecasting content likely to be interacted withand/or converted based on the collected data.

At operation 915, the method 900 may include providing the computedanalytical information to a marketer. In various embodiments, thisoperation 915 may include operations associated with providing aninterface over a network (e.g., an SaaS interface) and presenting thecomputed analytical information at the interface.

With reference to FIG. 10, a flow diagram shows a method 1000 forcomputing a value that is to indicate if content is relevant to a mobiledevice, in accordance with various embodiments. The method 1000 may beperformed by a server computing system, such as the content selectionand delivery computing system 150 of FIG. 1. While FIG. 10 illustrates aplurality of sequential operations, one of ordinary skill wouldunderstand that one or more operations of the method 1000 may betransposed and/or performed contemporaneously.

To begin, the method 1000 may include an operation 1005 for receivingdata that is to identify one or more predicates to be matched with dataassociated with a user. This data may be received from a marketer todefine a group (e.g., an audience) to which the marketer intends toprovide specific content. Further, the method 1000 may include anoperation 1010 for receiving data associated with at least one of amobile device and a user. In various embodiments, this data may beinformation received from a mobile device associated with a user and mayinclude information associated with at least one of the mobile deviceand the user. Further, this data may include metadata received from oneor more databases that is to supplement the information received fromthe mobile device.

Operation 1015 may include identifying one or more features based on thedata associated with the mobile device and/or the user that match one ormore of the predicates. This operation 1015 may identify thosepredicates that are satisfied by the data associated with the mobiledevice and/or the user. Operation 1020 may include computing a relevancyvalue based on one or more weighting values associated with the one ormore predicates that match the one or more features. In variousembodiments, this relevancy value may be computed by aggregating orotherwise accounting for weighting values associated with one or morepredicates that are matched to features identified from the receiveddata. In some embodiments, this relevancy value may be further adjustedbased on historical and/or analytical information associated with theuser and/or the mobile device.

With reference to FIG. 11, a flow diagram shows a method 1100 foridentifying one or more potential audiences based on data associatedwith a mobile device and/or user, in accordance with variousembodiments. The method 1100 may be performed by a server computingsystem, such as the content selection and delivery computing system 150of FIG. 1. While FIG. 11 illustrates a plurality of sequentialoperations, one of ordinary skill would understand that one or moreoperations of the method 1100 may be transposed and/or performedcontemporaneously.

The method 1100 may include an operation 1105 for receiving dataassociated with at least one of a mobile device and a user. In variousembodiments, this data may be information received from a mobile deviceassociated with a user and may include information associated with atleast one of the mobile device and the user. Further, this data mayinclude metadata received from one or more databases that is tosupplement the information received from the mobile device.

At operation 1110, the method 1100 may include identifying one or morepotential audiences based on the received data. In embodiments,operation 1110 may include operations associated with identifying aplurality of devices and/or users, which may be similarly situated andmay be of interest to one or more marketers. For example, operation 1110may include observing one or more trends across a plurality of receiveddata (e.g., information and/or metadata) associated with a plurality ofdevices and/or users to identify a plurality of users and/or devicesthat may be targeted with similar content. Accordingly, operation 1115may include providing an indication of the one or more potentialaudiences to a marketer. In various embodiments, this operation 1115 mayinclude operations associated with providing an interface over a network(e.g., an SaaS interface) and presenting the computed analyticalinformation at the interface. In other embodiments, this operation 1115may include providing the indication as a message, such as an emailmessage or text message.

With reference to FIG. 12, a flow diagram illustrates a method 1200 fornotifying another marketer that an audience associated with a firstmarketer is available to receive content, in accordance with variousembodiments. The method 1200 may be performed by a server computingsystem, such as the content selection and delivery computing system 150of FIG. 1. While FIG. 12 illustrates a plurality of sequentialoperations, one of ordinary skill would understand that one or moreoperations of the method 1200 may be transposed and/or performedcontemporaneously.

The method 1200 may begin with an operation 1205 for identifying one ormore audiences associated with one or more mobile devices. In variousembodiments, data (e.g., information and/or metadata) associated withone or more mobile devices and/or users may be received. The audiencemay be identified as active—e.g., having more than one member mobiledevice. According to various embodiments, a marketer may not havecontent or may have available space to present additional content to anaudience when that audience is identified as active. Thus, an operation1210 may include notifying at least one other marketer that an activeaudience has been identified and is available to be provided content.This indication may be provided through an interface (e.g., an SaaSinterface) and/or an alert that is sent to a device associated with theother marketer.

Operation 1215 may subsequently include selecting at least one othermarketer to provide content to the identified audience. In variousembodiments, a plurality of other marketers may be notified at operation1210. Therefore, operation 1215 may include operations associated with,for example, providing a reverse auction so that only one other marketermay provide content to that identified audience associated with thefirst marketer. The other selected marketer may then provide content tothe identified audience.

Turning to FIG. 13, a flow diagram illustrates a method 1300 forproviding additional content to a mobile device associated with a userbased on user interaction with first content provided to a mobile deviceassociated with that user, in accordance with various embodiments. Themethod 1300 may be performed by a server computing system, such as thecontent selection and delivery computing system 150 of FIG. 1. WhileFIG. 13 illustrates a plurality of sequential operations, one ofordinary skill would understand that one or more operations of themethod 1300 may be transposed and/or performed contemporaneously.

The method 1300 may begin with an operation 1305 for providing firstcontent to a mobile device associated with a user. The operation 1305may include operations associated with identifying an audience that isto include the mobile device and/or the user, selecting content to beprovided to that identified audience, and providing that selectedcontent to a mobile device associated with the user.

At the mobile device, the user may or may not interact with the providedcontent, and this user interaction, or absence thereof, may be recordedand transmitted. Accordingly, operation 1310 may include receiving anindication of user interaction, or the absence of user interaction, withthe first content. In various embodiments, this indication may include,for example, an indication that a user did or did not interact with(e.g., view, click, tap, and/or convert) content, a time betweeninteraction (e.g., a time between provision of content and viewing,clicking, tapping, and/or converting content), a status of interaction(e.g., incomplete where an eCommerce shopping cart has had an offer fromthe content added thereto), and the like.

Based on the received indication of the user interaction, the method1300 may include an operation 1315 for providing second content to amobile device associated with the user. In various embodiments, thisoperation 1315 may include, for example, adjusting future relevancyvalues based on the indication of the user interaction and/or adjustingone or more variables to be included in content to be provided to amobile device associated with the user. For example, the first contentmay include an offer at a first price, and an indication may be receivedthat the user viewed this offer but did not convert the offer at thefirst price. Accordingly, second content may be provided to a mobiledevice associated with that user that includes a price that is areduction from the first price. In various embodiments, the secondcontent may not be provided to a mobile device associated with the useruntil a later time at which, for example, another audience is identifiedthat is to include the user. Therefore, the user is not flooded withcontent, but rather future content is adapted to reflect the pastbehavior of the user.

With reference to FIG. 14, a flow diagram illustrates a method 1400 forproviding instruction content to a mobile device associated with a userbased on the size of the instruction content, in accordance with variousembodiments. The method 1400 may be performed by a server computingsystem, such as the content selection and delivery computing system 150of FIG. 1. While FIG. 14 illustrates a plurality of sequentialoperations, one of ordinary skill would understand that one or moreoperations of the method 1400 may be transposed and/or performedcontemporaneously.

Beginning with operation 1405, the method 1400 may include identifyingactual instruction content to be provided to a mobile device associatedwith a user. The operation 1405 may include operations associated withidentifying an audience that is to include the mobile device and/or theuser and/or identifying a campaign with which the content is associated.The actual instruction content may be associated with, for example,textual content that is also to be provided to the mobile device. Atdecision block 1410, the method 1400 may include determining if theactual instruction content exceeds a message capacity—for example, a“push” message to be provided to a mobile device may have a capacity ofsixty-four kilobytes that may not be exceeded by the actual instructioncontent. Where the actual instruction content does not exceed themessage capacity, the method 1400 may proceed to operation 1425 forproviding the actual instruction content to the mobile device. Inembodiments, this operation 1425 may include providing a message (e.g.,a “push” message) to the mobile device that includes textual content(e.g., content to be presented to a user on a display of the mobiledevice) and instruction content (e.g., content that is to cause anautomated action at the mobile device based on a user interactionassociated with the message).

Conversely, where the actual instruction content does exceed the messagecapacity, the method 1400 may reach operation 1415 for providing thereference instruction content to the mobile device. In embodiments, thisoperation 1415 may include providing a message (e.g., a “push” message)to the mobile device that includes textual content (e.g., content to bepresented to a user on a display of the mobile device) and referenceinstruction content. The reference instruction content may be associatedwith actual instruction content at a computing system (e.g., a servercomputing system coupled to a database). Based on providing thereference instruction content to the mobile device, the method 1400 mayinclude an operation 1420 for processing a received indication that themobile device has detected a user selection associated with thereference instruction content. In response, the method 1400 may reachoperation 1425 for providing the actual instruction content, herecorresponding to the reference instruction content, to the mobiledevice.

In various embodiments, example 1 may be a computing device for deliveryof content by marketers to users of mobile devices, the computing devicecomprising: an information intake module to process context informationto be received over a network from a first mobile device associated witha user; a content selection engine, coupled to the information intakemodule, to identify, based on the context information, an audience,associated with a campaign, that is to include the mobile device, and toidentify content associated with the campaign; and content deliverymodule, coupled to the content selection engine, to generate a messageto provide the identified content to a second mobile device associatedwith the user. Example 2 may be the computing device of claim 1, whereinthe first and second mobile devices are a same mobile device. Example 3may be the computing device of claim 1, wherein the context informationis to include an indication of at least one of an attribute of themobile device, a location associated with the mobile device, or anapplication of the mobile device associated with provision of thecontext information. Example 4 may be the computing device of claim 3,wherein the context information is to include an itinerary having anindication of a flight, and at least one of an origin of the flight, adestination of the flight, a time of departure of the flight, a time ofarrival of the flight. Example 5 may be the computing device of any ofclaims 1-3, further comprising: an information definition module,coupled with the content selection engine, to provide a user interfaceover a network, to process data received through the user interface andto define the audience or the campaign based on the data. Example 6 maybe the computing device of any of claims 1-3, wherein the audienceincludes one or more predicates, the context information includes one ormore features, and the content selection engine is to: identify theaudience based on a determination that each of the one or morepredicates is met by a corresponding feature of the one or morefeatures. Example 7 may be the computing device of claim 6, wherein eachof the one or more predicates is associated with a value and the contentdelivery module is to: calculate a relevance value associated with thecampaign based on the values of the one or more predicates; and generatethe message based on a determination that the relevance value meets orexceeds a predetermined threshold. Example 8 may be the computing deviceof claim 7, wherein the content selection engine is to identify anotheraudience based on the context information, to identify another campaignbased on the other audience, and to identify another content based onthe other campaign, and further wherein the content delivery module isto calculate another relevance value based on the values of one or morepredicates included in the other audience, to generate another messagebased on the other content, and provide, to the mobile device, the firstmessage, the other message, a first indication of the first relevancevalue, and another indication of the other relevance value. Example 9may be computing device of claim 7, wherein the information intakemodule is further to supplement the context information with metadata,the content selection engine is to identify the audience further basedon the metadata and to calculate the relevance value further based onthe metadata. Example 10 may be the computing device of claim 9, whereinthe metadata is to include an indication of at least one of weatherinformation, an origin, a destination, an estimated departure time of aflight, an actual departure time of the flight, an estimated arrivaltime of the flight, an actual arrival time of the flight, a duration ofthe flight, a status of the flight, a name of a hotel, an address of alocation, and a type of location. Example 11 may be the computing deviceof claim 10, wherein the information intake module is additionallycoupled with one or more databases, and further wherein the informationintake module is to process data received from the one or more databasesand to supplement the context information with the metadata based on thedata received from the one or more databases. Example 12 may be thecomputing device of claim 11, wherein the information intake module isto process fresh data received from the one or more databases thatupdates the first data received from the one or more databases, andfurther wherein the content selection engine is to identify updatedcontent based on the fresh data. Example 13 may be the computing deviceof any of claims 1-3, wherein the content delivery module is further todetermine that the identified content is no longer relevant to themobile device and to provide, to the mobile device, an indication thatthe identified content is no longer relevant to the mobile device.Example 14 may be the computing device of any of claims 1-3, furthercomprising: an analytics module, coupled to the content selectionengine, to store information associated with at least one of the contextinformation, the audience, the campaign, and the content, and to provideanalytical information based on the stored information. Example 15 maybe the computing device of claim 14, wherein the analytics module isfurther to identify a potential audience based on the informationreceived from the mobile device associated with the user and provide anindication of the identified potential audience to a marketer.

In various embodiments, example 16 may be a computer-implemented methodfor delivery of content by marketers to users of mobile devices, themethod comprising: receiving, from a mobile device, informationassociated with the mobile device or a user of the mobile device;identifying content based on the information received from the mobiledevice; computing a relevancy value associated with the content; andsending the content to the mobile device only where the computedrelevancy value meets or exceeds a predetermined threshold. Example 17may be the computer-implemented method of claim 16, further comprising:identifying second content based on the information received from themobile device; computing a second relevancy value associated with thesecond content; determining an order of the first content and the secondcontent based on the first relevancy value and the second relevancyvalue; sending the second content and an indication of the order to themobile device only where the second computed relevancy value meets orexceeds the predetermined threshold. Example 18 may be thecomputer-implemented method of any of claims 16, wherein computing therelevancy value comprises: identifying one or more features based on theinformation received from the mobile device that match one or morepredicates associated with the identifying of the content, eachpredicate of the one or more predicates to be associated with arespective weighting value; and computing the relevancy value based onthe one or more weighting values associated with the one or morepredicates that match the one or more features. Example 19 may be thecomputer-implemented method of any of claims 16, wherein the user of themobile device is a traveler and the content is associated with at leastone of a flight the traveler is to take, an airline provider of theflight, and a hotel at which the traveler is to stay. Example 20 may bethe computer-implemented method of claim 19, wherein the identifying ofthe content is further based on one or more updates associated with atleast one of the flight, the airline provider, and the hotel, and themethod further comprising: receiving, over a network, the one or moreupdates. Example 21 may be the computer-implemented method of any ofclaims 16-19, further comprising: determining that the content sent tothe mobile device is no longer relevant to the mobile device; andsending an indication to the mobile device that the content is no longerrelevant. Example 22 may be the computing-implemented method of any ofclaims 16-19, further comprising: providing, over a network, aninterface for a marketer; receiving, through the interface, data that isto identify one or more predicates to be matched with the information tobe received from the mobile device for the identifying of the content.Example 23 may be the computer-implemented method of claim 22, furthercomprising: receiving, from the marketer over the network, an indicationof whether the content should be provided to the mobile device based ona request to be received from the mobile device; receiving, from themobile device, a request for the content; and providing the content tothe mobile device based on the request. Example 24 may be thecomputer-implemented method of any of claims 16-19, wherein the sendingthe content to the mobile device comprises: generating a message thatincludes the content and one or more variables to be resolved by themobile device; and sending the message to the mobile device only wherethe computed relevancy value indicates that the content is relevant tothe mobile device. Example 25 may be the computer-implemented method ofany of claims 16-19, further comprising: identifying a potential groupto be provided content based on the received information associated withthe mobile device or the user of the mobile device; and providing anindication of the identified potential group to a marketer over anetwork. Example 26 may be the computer-implemented method of any ofclaims 16-19, further comprising: notifying a partner marketer that themobile device is available to receive content based on the receivedinformation associated with the mobile device or the user of the mobiledevice. Example 27 may be the computer-implemented method of any ofclaims 16-19, further comprising: receiving an indication of userinteraction or absence of user interaction with the content sent to themobile device; and sending additional content to the mobile deviceassociated with the user based on the indication of the user interactionor the absence of user interaction.

In various embodiments, example 28 may be one or more non-transitorycomputer system-readable media comprising computing device-executableinstructions, wherein the instructions, in response to execution by acomputing device, cause the computing device to: receive, from a mobiledevice, information associated with the mobile device or a user of themobile device; identify content based on the information received fromthe mobile device; compute a relevancy value associated with thecontent; and send the content to the mobile device only where thecomputed relevancy value meets or exceeds the predetermined threshold.Example 29 may be the one or more non-transitory computersystem-readable media of claim 28, wherein the instructions, in responseto execution by the computing device, further cause the computing deviceto: identify second content based on the information received from themobile device; compute a second relevancy value associated with thesecond content; determine an order of the first content and the secondcontent based on the first relevancy value and the second relevancyvalue; send the second content and an indication of the order to themobile device only where the second computed relevancy value meets orexceeds a predetermined threshold value. Example 30 may be one or morenon-transitory computer system-readable media of any of claims 28-29,wherein the instructions, in response to execution by the computingdevice, further cause the computing device to: gather informationassociated with one or more of the mobile device, the content, the user,and a marketer of the content; compute analytical information based onthe gathered information; and provide the computed analyticalinformation to the marketer over a network. Example 31 may be the one ormore non-transitory computer one or more non-transitory computersystem-readable media of any of claims 28-29, wherein the content is toinclude actual instruction content to cause an automated response at themobile device. Example 32 may be the one or more non-transitory computersystem-readable media of any of claims 28-29, wherein the content is toinclude reference instruction content that corresponds to actualinstruction content, and further wherein the instructions, in responseto execution by the computing device, further cause the computing deviceto: process an indication, received from the mobile device, that themobile device has detected a user interaction associated with thereference instruction content; and provide actual instruction content tothe mobile device based on the indication.

Some portions of the preceding detailed description have been presentedin terms of algorithms and symbolic representations of operations ondata bits within a computer memory. These algorithmic descriptions andrepresentations are the ways used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the arts. An algorithm is here, and generally,conceived to be a self-consistent sequence of operations leading to adesired result. The operations are those requiring physicalmanipulations of physical quantities.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the above discussion, itis appreciated that throughout the description, discussions utilizingterms such as those set forth in the claims below refer to the actionand processes of a computer system, or similar electronic computingdevice, that manipulates and transforms data represented as physical(electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission, or display devices.

Embodiments of the invention also relate to an apparatus for performingthe operations herein. Such a computer program is stored in anon-transitory computer-readable medium. A machine-readable mediumincludes any mechanism for storing information in a form readable by amachine (e.g., a computer). For example, a machine-readable (e.g.,computer-readable) medium includes a machine- (e.g., a computer-)readable storage medium (e.g., ROM, random access memory (“RAM”),magnetic disk storage media, optical storage media, flash memorydevices).

The processes or methods depicted in the preceding figures can beperformed by processing logic that comprises hardware (e.g., circuitry,dedicated logic, etc.), software (e.g., embodied on a non-transitorycomputer-readable medium), or a combination of both. Although theprocesses or methods are described above in terms of some sequentialoperations, it should be appreciated that some of the operationsdescribed can be performed in a different order. Moreover, someoperations can be performed in parallel rather than sequentially.

Embodiments of the present invention are not described with reference toany particular programming language. It will be appreciated that avariety of programming languages can be used to implement the teachingsof embodiments of the invention as described herein.

In the foregoing Specification, embodiments of the invention have beendescribed with reference to specific exemplary embodiments thereof. Itwill be evident that various modifications can be made thereto withoutdeparting from the broader spirit and scope of the invention as setforth in the following claims. The Specification and drawings are,accordingly, to be regarded in an illustrative sense rather than arestrictive sense.

What is claimed is:
 1. A computing device for delivery of content bymarketers to users of mobile devices, the computing device comprising:an information intake module to process context information to bereceived over a network from a first mobile device associated with auser; a content selection engine, coupled to the information intakemodule, to identify, based on the context information, an audience,associated with a campaign, that is to include the mobile device, and toidentify content associated with the campaign; and a content deliverymodule, coupled to the content selection engine, to generate a messageto provide the identified content to a second mobile device associatedwith the user.
 2. The computing device of claim 1, wherein the first andsecond mobile devices are a same mobile device.
 3. The computing deviceof claim 1, wherein the context information is to include an indicationof at least one of an attribute of the mobile device, a locationassociated with the mobile device, or an application of the mobiledevice associated with provision of the context information.
 4. Thecomputing device of claim 3, wherein the context information is toinclude an itinerary having an indication of a flight, and at least oneof an origin of the flight, a destination of the flight, a time ofdeparture of the flight, a time of arrival of the flight.
 5. Thecomputing device of claim 1, further comprising: an informationdefinition module, coupled with the content selection engine, to providea user interface over a network, to process data received through theuser interface and to define the audience or the campaign based on thedata.
 6. The computing device of claim 1, wherein the audience includesone or more predicates, the context information includes one or morefeatures, and the content selection engine is to: identify the audiencebased on a determination that each of the one or more predicates is metby a corresponding feature of the one or more features.
 7. The computingdevice of claim 6, wherein each of the one or more predicates isassociated with a value and the content delivery module is to: calculatea relevance value associated with the campaign based on the values ofthe one or more predicates; and generate the message based on adetermination that the relevance value meets or exceeds a predeterminedthreshold.
 8. The computing device of claim 7, wherein the contentselection engine is to identify another audience based on the contextinformation, to identify another campaign based on the other audience,and to identify another content based on the other campaign, and furtherwherein the content delivery module is to calculate another relevancevalue based on the values of one or more predicates included in theother audience, to generate another message based on the other content,and provide, to the mobile device, the first message, the other message,a first indication of the first relevance value, and another indicationof the other relevance value.
 9. The computing device of claim 7,wherein the information intake module is further to supplement thecontext information with metadata, the content selection engine is toidentify the audience further based on the metadata and to calculate therelevance value further based on the metadata.
 10. The computing deviceof claim 9, wherein the metadata is to include an indication of at leastone of weather information, an origin, a destination, an estimateddeparture time of a flight, an actual departure time of the flight, anestimated arrival time of the flight, an actual arrival time of theflight, a duration of the flight, a status of the flight, a name of ahotel, an address of a location, and a type of location.
 11. Thecomputing device of claim 10, wherein the information intake module isadditionally coupled with one or more databases, and further wherein theinformation intake module is to process data received from the one ormore databases and to supplement the context information with themetadata based on the data received from the one or more databases. 12.The computing device of claim 11, wherein the information intake moduleis to process fresh data received from the one or more databases thatupdates the first data received from the one or more databases, andfurther wherein the content selection engine is to identify updatedcontent based on the fresh data.
 13. The computing device of claim 1,wherein the content delivery module is further to determine that theidentified content is no longer relevant to the mobile device and toprovide, to the mobile device, an indication that the identified contentis no longer relevant to the mobile device.
 14. The computing device ofclaim 1, further comprising: an analytics module, coupled to the contentselection engine, to store information associated with at least one ofthe context information, the audience, the campaign, and the content,and to provide analytical information based on the stored information.15. The computing device of claim 14, wherein the analytics module isfurther to identify a potential audience based on the informationreceived from the mobile device associated with the user and provide anindication of the identified potential audience to a marketer.
 16. Acomputer-implemented method for delivery of content by marketers tousers of mobile devices, the method comprising: receiving, from a mobiledevice, information associated with the mobile device or a user of themobile device; identifying content based on the information receivedfrom the mobile device; computing a relevancy value associated with thecontent; and sending the content to the mobile device only where thecomputed relevancy value meets or exceeds a predetermined threshold. 17.The computer-implemented method of claim 16, further comprising:identifying second content based on the information received from themobile device; computing a second relevancy value associated with thesecond content; determining an order of the first content and the secondcontent based on the first relevancy value and the second relevancyvalue; sending the second content and an indication of the order to themobile device only where the second computed relevancy value meets orexceeds the predetermined threshold.
 18. The computer-implemented methodof claim 16, wherein computing the relevancy value comprises:identifying one or more features based on the information received fromthe mobile device that match one or more predicates associated with theidentifying of the content, each predicate of the one or more predicatesto be associated with a respective weighting value; and computing therelevancy value based on the one or more weighting values associatedwith the one or more predicates that match the one or more features. 19.The computer-implemented method of claim 16, wherein the user of themobile device is a traveler and the content is associated with at leastone of a flight the traveler is to take, an airline provider of theflight, and a hotel at which the traveler is to stay.
 20. Thecomputer-implemented method of claim 19, wherein the identifying of thecontent is further based on one or more updates associated with at leastone of the flight, the airline provider, and the hotel, and the methodfurther comprising: receiving, over a network, the one or more updates.21. The computer-implemented method of claim 16, further comprising:determining that the content sent to the mobile device is no longerrelevant to the mobile device; and sending an indication to the mobiledevice that the content is no longer relevant.
 22. Thecomputing-implemented method of claim 16, further comprising: providing,over a network, an interface for a marketer; receiving, through theinterface, data that is to identify one or more predicates to be matchedwith the information to be received from the mobile device for theidentifying of the content.
 23. The computer-implemented method of claim22, further comprising: receiving, from the marketer over the network,an indication of whether the content should be provided to the mobiledevice based on a request to be received from the mobile device;receiving, from the mobile device, a request for the content; andproviding the content to the mobile device based on the request.
 24. Thecomputer-implemented method of claim 16, wherein the sending the contentto the mobile device comprises: generating a message that includes thecontent and one or more variables to be resolved by the mobile device;and sending the message to the mobile device only where the computedrelevancy value indicates that the content is relevant to the mobiledevice.
 25. The computer-implemented method of claim 16, furthercomprising: identifying a potential group to be provided content basedon the received information associated with the mobile device or theuser of the mobile device; and providing an indication of the identifiedpotential group to a marketer over a network.
 26. Thecomputer-implemented method of claim 16, further comprising: notifying apartner marketer that the mobile device is available to receive contentbased on the received information associated with the mobile device orthe user of the mobile device.
 27. The computer-implemented method ofclaim 16, further comprising: receiving an indication of userinteraction or absence of user interaction with the content sent to themobile device; and sending additional content to the mobile deviceassociated with the user based on the indication of the user interactionor the absence of user interaction.
 28. One or more non-transitorycomputer system-readable media comprising computing device-executableinstructions, wherein the instructions, in response to execution by acomputing device, cause the computing device to: receive, from a mobiledevice, information associated with the mobile device or a user of themobile device; identify content based on the information received fromthe mobile device; compute a relevancy value associated with thecontent; and send the content to the mobile device only where thecomputed relevancy value meets or exceeds the predetermined threshold.29. The one or more non-transitory computer system-readable media ofclaim 28, wherein the instructions, in response to execution by thecomputing device, further cause the computing device to: identify secondcontent based on the information received from the mobile device;compute a second relevancy value associated with the second content;determine an order of the first content and the second content based onthe first relevancy value and the second relevancy value; send thesecond content and an indication of the order to the mobile device onlywhere the second computed relevancy value meets or exceeds apredetermined threshold value.
 30. The one or more non-transitorycomputer system-readable media of claim 28, wherein the instructions, inresponse to execution by the computing device, further cause thecomputing device to: gather information associated with one or more ofthe mobile device, the content, the user, and a marketer of the content;compute analytical information based on the gathered information; andprovide the computed analytical information to the marketer over anetwork.
 31. The one or more non-transitory computer one or morenon-transitory computer system-readable media of claim 28, wherein thecontent is to include actual instruction content to cause an automatedresponse at the mobile device.
 32. The one or more non-transitorycomputer system-readable media of claim 28, wherein the content is toinclude reference instruction content that corresponds to actualinstruction content, and further wherein the instructions, in responseto execution by the computing device, further cause the computing deviceto: process an indication, received from the mobile device, that themobile device has detected a user interaction associated with thereference instruction content; and provide actual instruction content tothe mobile device based on the indication.